|
|
Thorsten Froehlich <tho### [at] trfde> wrote:
:> #while((i<n)&(a[i]=0))
:> #declare i=i+1
:> #end
: The above code is illegal in C and C++
How so? I don't see anything wrong there (of course if we imagine that we
convert it to equivalent C code).
The C standard *guarantees* that the expression at the right of && is not
evaluated if the expression at the left is false. (The & operator in POV-Ray
is equivalent to the && operator in C, and it should not be confused with
the & operator in C, which does a completely different thing.)
The example doesn't either modify the same value in the same sentence or
anything similar. It looks completely ok to me.
--
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}// - Warp -
Post a reply to this message
|
|